#ifndef GAME_HH
#define GAME_HH

#include "Character.hh"
#include "Room.hh"
#include "Menu.hh"
#include "SpecialRoom.hh"
#include "Item.hh"
#include "Goblin.hh"
#include "Troll.hh"
#include "Wizard.hh"
#include "TungTungTung_sahur.hh"
#include "FrostQueen.hh"


class Game {
private:
    Room* startingChamber;
    Room* corridor;
    Room* treasureRoom;
    Room* ancientTemple;
    SpecialRoom* healingRoom;
    SpecialRoom* damageRoom;
    Character* player;
    Menu* menu;
    Room* currentRoom;

    void createRooms();
    void connectRooms();
    void addItemsAndEnemies();
    void gameLoop();

public:
    Game();
    ~Game();
    Game(const Game& other); // Copy constructor
    Game& operator=(const Game& other); // Copy assignment operator
    void start();
};

#endif // GAME_HH